package com.geovis.emergency.spd.biz.pc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geovis.emergency.spd.entity.basic.entity.PcPunch;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.MobileLabelVO;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.MobileSignInStatisticsVO;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.MobileSignStatisticsByDaysVO;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 应急预案指挥模块-打卡表 服务类
 * </p>
 *
 * @author lmolong
 * @since 2022-06-21
 */
public interface IPcPunchService extends IService<PcPunch> {

    /**
     * 查询用户某天的打卡信息
     * @param userId 用户id
     * @param pcDrillId 演练id
     * @param date 打卡日期
     * @return
     */
    PcPunch selectUserPunch(String userId, String pcDrillId, Date date);

    /**
     * 移动端打卡记录统计
     * @param userId 用户id
     * @param pcDrillId 推演id
     * @param date 日期，格式YYYY-MM-dd
     * @return
     */
    List<MobileSignInStatisticsVO> mobileStatistics(String userId, String pcDrillId, String date);

    List<MobileSignStatisticsByDaysVO> mobileSignStatisticsByDaysVO(String userId, String pcDrillId, String startDate,String endDate);

    List<MobileLabelVO> statisticsTotal(String userId, String pcDrillId, String startDate,String endDate);
    /**
     * 查询数量
     * @param pcDrillId 推演id
     * @param date 日期（格式 YYYY-MM-dd）
     * @param userId 用户id
     * @param status 1.统计正常打卡 其他统计异常打卡
     * @return
     */
    Integer selectCountByPcDrillIdAndDate(String pcDrillId, String date, String userId,String status);
}
